
package pl.niemar22.unitests;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

import java.util.concurrent.TimeUnit;

import org.junit.After;
import org.junit.Before;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public abstract class SeleniumBase {
   
   public WebDriver driver;
   public String baseUrl="";
   public StringBuffer verificationErrors = new StringBuffer();
   
   @Before
   public void setUp() throws Exception {
       driver = new FirefoxDriver();
       driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
   }
   
   public void assertText(String text, By by) {
       assertEquals(text, driver.findElement(by).getText());
   }
   
   public void insertText(By by, String text) {
       driver.findElement(by).sendKeys(text);
   }

   public void clear(By by) {
       driver.findElement(by).clear();
   }
   
   public void click(By by) {
       driver.findElement(by).click();
   }
   
   @After
   public void tearDown() throws Exception {
       driver.quit();
       String verificationErrorString = verificationErrors.toString();
       if (!"".equals(verificationErrorString)) {
           fail(verificationErrorString);
       }
   }

   public boolean isElementPresent(By by) {
       try {
           driver.findElement(by);
           return true;
       } catch (NoSuchElementException e) {
           return false;
       }
   }
}